package cn.tedu._04mvcboot01.controller;

import cn.tedu._04mvcboot01.pojo.dto.BmiDTO;
import cn.tedu._04mvcboot01.pojo.dto.WeiboDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.xml.crypto.dom.DOMCryptoContext;

/**
 * Controller注解: 标识为控制器,用户接受并处理用户的相关请求
 */
@Controller
public class UserController {
    /**
     * 服务端接受参数的第一种方式: HttpServletRequest
     * 1.RequestMapping:请求注解,添加在控制器方法上,用于匹配URL地址路径;
     * 2.ResponseBody:响应注解,允许控制器方法以返回值的方式返回给客户端数据;
     */
    @RequestMapping("v1/users/login")
    @ResponseBody
    public String login(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        return username + ":" + password;
    }

    /**
     * 服务端接收参数的第2种方式: 声明参数方式接收
     */
    @RequestMapping("v1/users/reg")
    @ResponseBody
    public String reg(String username, String password, String nickname) {
        return username + ":" + password + ":" + nickname;
    }

    /**
     * 服务端接收参数的第3种方式: 通过POJO 的DTO类来接收
     * 发微博: 用户名,微博内容
     */
    @RequestMapping("v1/users/weibo")
    @ResponseBody
    public String weibo(WeiboDTO weiboDTO) {
        final String username = weiboDTO.getUsernmae();
        final String content = weiboDTO.getContent();

        return "发送成功" + username + ":" + content;
    }

}
